﻿using System.Collections.Generic;

namespace SilverlightOverview.Data
{
    public class Example
    {
        public string Text { get; set; }
        public string Xaml { get; set; }
        public IList<Example> Examples { get; set; }
    }

    public class ExampleFactory
    {
        public IList<Example> Examples { get; set; }

        public ExampleFactory()
        {
            Examples = new List<Example>
               {
                   new Example
                       {
                           Text = "Basic Elements",
                           Xaml = "BasicElements",
                       },
                   new Example
                       {
                           Text = "Transformations",
                           Xaml = "TranslateTransform",
                           Examples = new List<Example>
                              {
                                  new Example { Text = "Translate Transform", Xaml = "TranslateTransform" },
                                  new Example { Text = "Scale Trasnform", Xaml = "ScaleTransform" },
                                  new Example { Text = "Rotate Transform", Xaml = "RotateTransform" },
                                  new Example { Text = "Skew Transform", Xaml = "SkewTransform" },
                                  new Example { Text = "Perspective 3D", Xaml = "Perspective3D" },
                              }
                       },
                   new Example
                       {
                           Text = "Animations",
                           Xaml = "BackEase",
                           Examples = new List<Example>
                              {
                                  new Example { Text = "Back Ease", Xaml = "BackEase" },
                                  new Example { Text = "Bounce Ease", Xaml = "BounceEase" },
                                  new Example { Text = "Circle Ease", Xaml = "CircleEase" },
                                  new Example { Text = "Cubic Ease", Xaml = "CubicEase" },
                                  new Example { Text = "Elastic Ease", Xaml = "ElasticEase" },
                                  new Example { Text = "Exponential Ease", Xaml = "ExponentialEase" },
                                  new Example { Text = "Power Ease", Xaml = "PowerEase" },
                                  new Example { Text = "Quadratic Ease", Xaml = "QuadraticEase" },
                                  new Example { Text = "Quartic Ease", Xaml = "QuarticEase" },
                                  new Example { Text = "Quintic Ease", Xaml = "QuinticEase" },
                                  new Example { Text = "Sine Ease", Xaml = "SineEase" },
                              }
                       },
                   new Example
                       {
                           Text = "Container Elements",
                           Xaml = "CanvasExample",
                           Examples = new List<Example>
                              {
                                  new Example { Text = "Canvas", Xaml = "CanvasExample" },
                                  new Example { Text = "Grid", Xaml = "GridExample" },
                                  new Example { Text = "StackPanel", Xaml = "StackPanelExample" },
                                  new Example { Text = "ScrollViewer", Xaml = "ScrollViewerExample" },
                                  new Example { Text = "Border", Xaml = "BorderExample" },
                              }
                       },
                   new Example
                       {
                           Text = "Controls",
                           Xaml = "DataEntryControls",
                           Examples = new List<Example>
                              {
                                  new Example { Text = "Data Entry", Xaml = "DataEntryControls" },
                                  new Example { Text = "Silverlight Toolkit", Xaml = "SilverlightToolkit" },
                                  new Example { Text = "Silverlight Contrib", Xaml = "SilverlightContrib" },
                              }
                       },
                   new Example
                       {
                           Text = "Styling / Skinning",
                           Xaml = "Styles-InLine",
                           Examples = new List<Example>
                              {
                                  new Example { Text = "In-Line Styles", Xaml = "Styles-InLine" },
                                  new Example { Text = "Resources", Xaml = "Styles-Resource" },
                                  new Example { Text = "Templating", Xaml = "Styles-Template" },
                              }
                       },
                   new Example
                       {
                           Text = "Data Binding",
                           Xaml = "DataBindingExample",
                       },
                   new Example
                       {
                           Text = "Pixel Effects",
                           Xaml = "Blur",
                           Examples = new List<Example>
                              {
                                  new Example { Text = "Blur Effect", Xaml = "Blur" },
                                  new Example { Text = "Drop Shadow Effect", Xaml = "DropShadow" },
                                  new Example { Text = "Swirl Effect", Xaml = "Swirl" },
                              }
                       },
               };
        }
    }
}
